import {
	funcModuleApi,
} from '@utils/apis'
import {
	add,
	funcEdit,
	funcDel,
	submit,
	cancel,
} from './func-methods'
import {
	$U_SetCacheItem,
} from '@utils/storage'

module.exports = function initUserPage(user) {
	$._store = {}
	let comps = {
		dataGrid: $("#main-tabs-func"),

		// funcDlg: $("#func-form-dialog"),
		// funcForm: $("#func-form"),
		// funcModule: $('#func-module'),
		// funcId: $('#func-id'),
		// funcName: $('#func-name'),
		// funcUrl: $('#func-url'),
		// funcDesc: $('#func-desc'),
		// formBtnSave: $("#func-form-btn-save"),
		// formBtnCancel: $("#func-form-btn-cancel"),

		// moduleDlg: $("#func-module-dialog"),
		// moduleForm: $("#func-module-form"),
		// moduleNode: $("#func-module-node"),
		// moduleId: $("#func-module-id"),
		// moduleName: $("#func-module-name"),
		// moduleRoute: $("#func-module-route"),
		// moduleDesc: $("#func-module-desc"),
		// moduleBtnSave: $("#func-module-btn-save"),
		// moduleBtnCancel: $("#func-module-btn-cancel"),

		pNode: $("#p_node"),
		editDlg: $("#func-edit-dialog"),
		editForm: $("#func-edit-form"),
		editNode: $("#func-edit-node"),
		editId: $("#func-edit-id"),
		editName: $("#func-edit-name"),
		editUrl: $("#func-edit-url"),
		editDesc: $("#func-edit-desc"),
		editBtnSave: $("#func-edit-btn-save"),
		editBtnCancel: $("#func-edit-btn-cancel"),
	}
	// let funcs = user.funcMap['role_management']
	initDataGrid(comps, user)
	initEditDlg(comps, user)
}

function initDataGrid(comps, user) {
	let {
		dataGrid,
		formDialog,
	} = comps
	let options = {
		toolbar: [],
		fit: true,
		animate: true,
		lines: true,
		fitColumns: true,
		rownumbers: true,
		singleSelect: true,
		idField: 'id',
		treeField: 'name',
		columns: [
			[{
				field: 'name',
				title: '功能名称',
				width: 80,
			}, {
				field: 'type',
				title: '类型',
				width: 80,
				formatter(value, row, index) {
					if (value == '权限')
						return `<i class="icon-lock">..</i><span>权限</span>`
					if (value == '模块')
						return `<i class="icon-add">&nbsp;&nbsp;&nbsp;</i><span>模块</span>`
					return value
				},
			}, {
				field: 'tree_url',
				title: '链接',
				width: 80,
			}, {
				field: 'id',
				title: 'ID',
				width: 80,
			}, {
				field: 'desc',
				title: '描述',
				width: 80
			}]
		],
	}
	// 添加
	if (user.func_ids.indexOf('func_add') > -1) {
		options.toolbar.push({
			iconCls: 'icon-add',
			text: '添加模块',
			handler() {
				add(comps, user, 'func_add', 'module')
			}
		}, '-', {
			iconCls: 'icon-lock',
			text: '添加权限',
			handler() {
				add(comps, user, 'func_add', 'func')
			}
		}, '-')
	}
	// 修改
	if (user.func_ids.indexOf('func_modify') > -1) {
		options.toolbar.push({
			iconCls: 'icon-edit',
			text: '修改',
			handler() {
				funcEdit(comps, user, 'func_modify')
			}
		}, '-')
	}
	// 删除
	if (user.func_ids.indexOf('func_del') > -1) {
		options.toolbar.push({
			iconCls: 'icon-remove',
			text: '删除',
			handler() {
				funcDel(comps, user, 'func_del')
			}
		}, '-')
	}
	// 角色列表
	if (user.func_ids.indexOf('func_list') > -1) {
		options.url = user.funcMap['func_list'].func_url
	}
	dataGrid.treegrid(options)
}

function initEditDlg(comps, user) {
	let {
		editDlg,
		editForm,
		editName,
		editUrl,
		editDesc,
		editBtnSave,
		editBtnCancel,
	} = comps

	editBtnSave.linkbutton({
		text: '保存',
		iconCls: 'icon-save',
		onClick() {
			submit(comps, user, 'edit')
		},
	})
	editBtnCancel.linkbutton({
		text: '取消',
		iconCls: 'icon-cancel',
		onClick() {
			cancel(editDlg)
		},
	})
}

// function initFuncDlg(comps, user, moduleData) {
// 	let {
// 		funcDlg,
// 		funcModule,
// 		funcUrl,
// 		formBtnSave,
// 		formBtnCancel,
// 	} = comps
// 	formBtnSave.linkbutton({
// 		text: '保存',
// 		iconCls: 'icon-save',
// 		onClick() {
// 			submit(comps, user, 'func')
// 		},
// 	})
// 	formBtnCancel.linkbutton({
// 		text: '取消',
// 		iconCls: 'icon-cancel',
// 		onClick() {
// 			cancel(funcDlg)
// 		},
// 	})
// 	funcModule.combobox('loadData', moduleData)
// }

// function initMoudleDlg(comps, user, nodeData) {
// 	let {
// 		moduleDlg,
// 		moduleForm,
// 		moduleNode,
// 		moduleId,
// 		moduleName,
// 		moduleRoute,
// 		moduleDesc,
// 		moduleBtnSave,
// 		moduleBtnCancel,
// 	} = comps
// 	moduleBtnSave.linkbutton({
// 		text: '保存',
// 		iconCls: 'icon-save',
// 		onClick() {
// 			submit(comps, user, 'module')
// 		},
// 	})
// 	moduleBtnCancel.linkbutton({
// 		text: '取消',
// 		iconCls: 'icon-cancel',
// 		onClick() {
// 			cancel(moduleDlg)
// 		},
// 	})
// 	moduleNode.combobox('loadData', nodeData)
// }